gtkrange: consider css margin on the slider
authorLapo Calamandrei <calamandrei@gmail.com>
Wed, 12 Nov 2014 16:20:53 +0000 (17:20 +0100)
committerLapo Calamandrei <calamandrei@gmail.com>
Wed, 12 Nov 2014 16:20:53 +0000 (17:20 +0100)
Css margin now works on the slider as they do on the trough.
The margin is not considered in the space allocation as it is for
the trough, so the slider width will be the set slider-width -
margins. Spefifying margins on the main widget in the css will
clearly affect both the trough and the slider, so theme changes are
needed.

gtk/gtkrange.c

index 51898efc3fe1adf4e707840cec9e4b161ba35eac..87d38311e3cc826c0663066a6e1a9b5eccaff96c 100644 (file)
@@ -2210,13 +2210,14 @@ gtk_range_draw (GtkWidget *widget,
 
       gtk_style_context_save (context);
       gtk_style_context_add_class (context, GTK_STYLE_CLASS_SLIDER);
+      gtk_style_context_get_margin (context, widget_state, &margin);
       gtk_style_context_set_state (context, state);
 
       gtk_render_slider (context, cr,
-                         priv->slider.x,
-                         priv->slider.y,
-                         priv->slider.width,
-                         priv->slider.height,
+                         priv->slider.x + margin.left,
+                         priv->slider.y + margin.top,
+                         priv->slider.width - margin.left - margin.right,
+                         priv->slider.height - margin.top - margin.bottom,
                          priv->orientation);
 
       gtk_style_context_restore (context);